﻿''' <summary>
''' Erstellt einen TTP
''' </summary>
''' <remarks></remarks>
<Serializable()> Public Class EinheitTTP
    Inherits ObjektEinheit
    Public Sub New(ByVal neuSpieler As Integer, ByVal neuX As Integer, ByVal neuY As Integer, Optional ByVal HatSichBewegt As Boolean = True)
        MyBase.New(neuSpieler, neuX, neuY, HatSichBewegt)
    End Sub
    Public Sub New(ByVal neuKP As Integer, ByVal neuTreibstoff As Integer, ByVal neuMunition As Integer, ByVal neuSpieler As Integer, ByVal neuBesetzen As Boolean, ByVal neuX As Integer, ByVal neuY As Integer, ByVal Tarnung As Boolean, Optional ByVal HatSichbeWegt As Boolean = True)
        MyBase.New(neuKP, neuTreibstoff, neuMunition, neuSpieler, neuX, neuY, neuBesetzen, HatSichbeWegt, Tarnung)
    End Sub
    Public Sub New(ByVal neuKP As Integer, ByVal neuSpieler As Integer, ByVal neuX As Integer, ByVal neuY As Integer, Optional ByVal HatSichbeWegt As Boolean = True)
        MyBase.New(neuKP, neuSpieler, neuX, neuY, HatSichbeWegt)
    End Sub
    Protected Overrides Sub Datenladen()
        Select My.Settings.CommanderWarsGameMoodus
            Case CommanderWarsGameModi.AdvanceWarsDC
                Einheitenname = "TTP"
                EinheitenID = "TTP"
                SpritMax = 70
                KannTarnen = False
                KannBesetzen = False
                Treibeverbrauch = 0
                Koste = 5000
                Fähigkeit = "Ration"
                Treibstoff = SpritMax
                Bewegungspunkte = 6
                Bewegungsart = MovementSorts.Ketten.tostring
                Sicht = 1
                MunitionMax = 1
                Munition = MunitionMax
                Waffe1 = "Keine"
                Waffe2 = "MaterialTTP"
                Array.Resize(Ladung, 1)
                GeladeneEinheitenIDs = New String() {"INF", MovementSorts.Mech.ToString.ToUpper, "SSIEINHEIT", "MOTORRAD"}
                EntladungsUntergrund = New String() {"EBENE", "STRAND", "TEMPWERFT", "TEMPFLUGHAFEN", "ÖDLAND", "RUINE", "BAUBRÜCKE", "SUMPF", "BRÜCKE", "WALD", "BERG", "STRAßE", "WÜSTE", "EBENE+SCHROTT", "HQ", "STADT", "BASIS", "WERFT", "FLUGHAFEN", "TURM", "KAPUTTEPIPESCHWEIß", "KAPUTTESCHWEIßNAHT", "KAKTEEN", "PFAD", "KAKTEEN", "KAPUTTEPIPESCHWEIß", "KIEFERN", "PLINEKAPUTT", "SCHNEE", "STRAßENFROST", "WÜSTE", "MINE", "WÜSTE+SCHROTT", "SCHNEE+SCHROTT", "RAKETENSILO+RAKETE", "RAKETENSILO"}
                MinimaleReichweite = 0
                MaximaleReichweite = 0
                BildIDbestimmen()
                Explosion = "Land"
            Case CommanderWarsGameModi.CommanderWars2
                Einheitenname = "TTP"
                EinheitenID = "TTP"
                SpritMax = 70
                KannTarnen = False
                KannBesetzen = False
                Treibeverbrauch = 0
                Koste = 5000
                Fähigkeit = "Ration"
                Treibstoff = SpritMax
                Bewegungspunkte = 6
                Bewegungsart = MovementSorts.Ketten.ToString
                Sicht = 1
                MunitionMax = 1
                Munition = MunitionMax
                Waffe1 = "TTPMG"
                Waffe2 = "Keine"
                Array.Resize(Ladung, 1)
                GeladeneEinheitenIDs = New String() {"INF", MovementSorts.Mech.ToString.ToUpper, "SSIEINHEIT", "MOTORRAD"}
                EntladungsUntergrund = New String() {"EBENE", "STRAND", "TEMPWERFT", "TEMPFLUGHAFEN", "ÖDLAND", "RUINE", "BAUBRÜCKE", "SUMPF", "BRÜCKE", "WALD", "BERG", "STRAßE", "WÜSTE", "EBENE+SCHROTT", "HQ", "STADT", "BASIS", "WERFT", "FLUGHAFEN", "TURM", "KAPUTTEPIPESCHWEIß", "KAPUTTESCHWEIßNAHT", "KAKTEEN", "PFAD", "KAKTEEN", "KAPUTTEPIPESCHWEIß", "KIEFERN", "PLINEKAPUTT", "SCHNEE", "STRAßENFROST", "WÜSTE", "MINE", "WÜSTE+SCHROTT", "SCHNEE+SCHROTT", "RAKETENSILO+RAKETE", "RAKETENSILO"}
                MinimaleReichweite = 0
                MaximaleReichweite = 0
                BildIDbestimmen()
                Explosion = "Land"
            Case Is <= CommanderWarsGameModi.AdvanceWarsDS
                Einheitenname = "TTP"
                EinheitenID = "TTP"
                SpritMax = 70
                KannTarnen = False
                KannBesetzen = False
                Treibeverbrauch = 0
                Koste = 5000
                Fähigkeit = "Ration"
                Treibstoff = SpritMax
                Bewegungspunkte = 6
                Bewegungsart = MovementSorts.Ketten.ToString
                Sicht = 1
                MunitionMax = -1
                Munition = MunitionMax
                Waffe1 = "Keine"
                Waffe2 = "Keine"
                Array.Resize(Ladung, 1)
                GeladeneEinheitenIDs = New String() {"INF", MovementSorts.Mech.ToString.ToUpper, "SSIEINHEIT", "MOTORRAD"}
                EntladungsUntergrund = New String() {"EBENE", "STRAND", "TEMPWERFT", "TEMPFLUGHAFEN", "ÖDLAND", "RUINE", "BAUBRÜCKE", "SUMPF", "BRÜCKE", "WALD", "BERG", "STRAßE", "WÜSTE", "EBENE+SCHROTT", "HQ", "STADT", "BASIS", "WERFT", "FLUGHAFEN", "TURM", "KAPUTTEPIPESCHWEIß", "KAPUTTESCHWEIßNAHT", "KAKTEEN", "PFAD", "KAKTEEN", "KAPUTTEPIPESCHWEIß", "KIEFERN", "PLINEKAPUTT", "SCHNEE", "STRAßENFROST", "WÜSTE", "MINE", "WÜSTE+SCHROTT", "SCHNEE+SCHROTT", "RAKETENSILO+RAKETE", "RAKETENSILO"}
                MinimaleReichweite = 0
                MaximaleReichweite = 0
                BildIDbestimmen()
                Explosion = "Land"
            Case Else
                Einheitenname = "TTP"
                EinheitenID = "TTP"
                SpritMax = 70
                KannTarnen = False
                KannBesetzen = False
                Treibeverbrauch = 0
                Koste = 5000
                Fähigkeit = "Ration"
                Treibstoff = SpritMax
                Bewegungspunkte = 6
                Bewegungsart = MovementSorts.Ketten.ToString
                Sicht = 1
                MunitionMax = -1
                Munition = MunitionMax
                Waffe1 = "Keine"
                Waffe2 = "Keine"
                Array.Resize(Ladung, 1)
                GeladeneEinheitenIDs = New String() {"INF", MovementSorts.Mech.ToString.ToUpper, "SSIEINHEIT", "MOTORRAD"}
                EntladungsUntergrund = New String() {"EBENE", "STRAND", "TEMPWERFT", "TEMPFLUGHAFEN", "ÖDLAND", "RUINE", "BAUBRÜCKE", "SUMPF", "BRÜCKE", "WALD", "BERG", "STRAßE", "WÜSTE", "EBENE+SCHROTT", "HQ", "STADT", "BASIS", "WERFT", "FLUGHAFEN", "TURM", "KAPUTTEPIPESCHWEIß", "KAPUTTESCHWEIßNAHT", "KAKTEEN", "PFAD", "KAKTEEN", "KAPUTTEPIPESCHWEIß", "KIEFERN", "PLINEKAPUTT", "SCHNEE", "STRAßENFROST", "WÜSTE", "MINE", "WÜSTE+SCHROTT", "SCHNEE+SCHROTT", "RAKETENSILO+RAKETE", "RAKETENSILO"}
                MinimaleReichweite = 0
                MaximaleReichweite = 0
                BildIDbestimmen()
                Explosion = "Land"
        End Select
    End Sub
    Public Overrides Function GetCWMunition() As Integer
        Return -1
    End Function
    Dim Baufortschritt As Integer = 0
    ''' <summary>
    ''' Baut eine Temporäre Basis
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub BuildTempBase(ByVal X As Integer, ByVal Y As Integer)
        Baufortschritt += getKP()
        If Baufortschritt >= 20 Then
            Dim L As ObjektLandschaft = Objektverwalter.Spielfeld.Landschaften(X, Y, Objektverwalter.Spielfeld.MomentaneSchlacht)
            Dim ID As String = L.getID
            If ID = "STRAND" Or ID = "SEE" Then
                L.Gebäude = ObjektLadeklasse.NewGebäude("TEMPWERFT", Spieler, X, Y, Objektverwalter.Spielfeld.MomentaneSchlacht)
            ElseIf ID = "EBENE" Or ID = "WÜSTE" Or ID = "SCHNEE" Then
                L.Gebäude = ObjektLadeklasse.NewGebäude("TEMPFLUGHAFEN", Spieler, X, Y, Objektverwalter.Spielfeld.MomentaneSchlacht)
            End If
            Munition = -1
            Baufortschritt = 0
            Besetzen = False
        Else
            Besetzen = True
        End If

    End Sub
    Public Sub StopBuildTempBase()
        Baufortschritt = 0
        Besetzen = False
    End Sub
    Public Function GetBaufortschritt() As Integer
        Return Baufortschritt
    End Function
    Protected Overrides Sub UpgradeUnit(ByVal E As ObjektEinheit)
        Select Case EinheitenStufe
            Case ObjektEinheit.Stufe.Leutnant
                E.ATKDEFBoost.Y += 5
            Case Stufe.Offizier
                E.ATKDEFBoost.Y += 10
            Case Stufe.General
                E.ATKDEFBoost.Y += 15
            Case Stufe.Veteran
                E.ATKDEFBoost.X += 5
                E.ATKDEFBoost.Y += 15
                Array.Resize(Ladung, Ladung.Length + 1)
            Case Stufe.KO
                E.ATKDEFBoost.X += 5
                E.ATKDEFBoost.Y += 15
                Array.Resize(Ladung, Ladung.Length + 1)
            Case Else
        End Select
    End Sub
End Class
